home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 097 (1989-05-15)(Ossowski, Stefan)(DE)(PD).zip / Taifun 097 (1989-05-15)(Ossowski, Stefan)(DE)(PD).adf / FastMemoryController / fmc.s < prev    next >
Text File  |  1989-04-05  |  6KB  |  265 lines

  1.     opt    l+
  2.  
  3.     incdir       "vd0:include/"
  4.     include    "misc/easystart.i"
  5.     jmp    Start
  6.  
  7.  
  8.     include    intuition/intuition.i
  9.     include    intuition/intuition_lib.i
  10.             include     exec/memory.i
  11.     include    exec/exec_lib.i
  12.     include    graphics/graphics_lib.i
  13.     include    graphics/text.i
  14.     include    libraries/dos_lib.i
  15.     include    libraries/dos.i
  16.  
  17. PRINT    macro
  18.     move    #\1,d0    
  19.     move    #\2,d1    
  20.     move.l    Window,a1
  21.     move.l    wd_RPort(a1),a1
  22.     CALLGRAF    Move        
  23.     move    #\3,d0    
  24.     move.l    Window,a1
  25.     move.l    wd_RPort(a1),a1
  26.     CALLGRAF    SetAPen
  27.     lea    \4,a0    
  28.     move.l    #\5,d0    
  29.     move.l    Window,a1        
  30.     move.l    wd_RPort(a1),a1    
  31.     CALLGRAF    Text
  32.     endm
  33.  
  34. OpenThem    lea    dosname(pc),a1
  35.     moveq.l    #0,d0
  36.     CALLEXEC     OpenLibrary
  37.     move.l    d0,_DOSBase    
  38.     lea    intname(pc),a1                 
  39.     moveq.l    #0,d0        
  40.     CALLEXEC     OpenLibrary
  41.     move.l    d0,_IntuitionBase  
  42.     lea    grafname(pc),a1
  43.     moveq.l    #0,d0
  44.     CALLEXEC     OpenLibrary
  45.     move.l    d0,_GfxBase
  46.     rts
  47. _DOSBase    dc.l    0
  48. dosname    DOSNAME
  49. _GfxBase    dc.l    0
  50. grafname    GRAFNAME
  51. _IntuitionBase    dc.l    0
  52. intname    INTNAME
  53.  
  54. NewWindow    dc.w    300,100,160,45
  55.     dc.b    1,2
  56.     dc.l    CLOSEWINDOW!GADGETUP
  57.     dc.l    WINDOWCLOSE!ACTIVATE!WINDOWDRAG!WINDOWDEPTH!RMBTRAP
  58.     dc.l    Gadget1
  59.     dc.l    0,Title
  60.     dc.l    0,0
  61.     dc.w    0,0,0,0
  62.     dc.w    WBENCHSCREEN
  63. Title    dc.b    "FMC by RF",0
  64. Gadget1    dc.l    0
  65.     dc.w    9,13,32,30
  66.     dc.w    GADGHCOMP!GADGHIMAGE!GADGIMAGE,RELVERIFY!TOGGLESELECT,BOOLGADGET
  67.     dc.l    Image1,Image2,0,0,0
  68.     dc.w    1
  69.     dc.l    0
  70. Image1    dc.w    0,0,32,30,2
  71.     dc.l    Data1
  72.     dc.b    1+2,0
  73.     dc.l    0
  74. Image2    dc.w    0,0,32,30,2
  75.     dc.l    Data2
  76.     dc.b    1+2,0
  77.     dc.l    0
  78. Font    dc.l    FName
  79.     dc.w    TOPAZ_EIGHTY
  80.     dc.b    FS_NORMAL
  81.     dc.b    FPF_ROMFONT
  82. FName    dc.b    "topaz.font",0
  83.  
  84. Window    dc.l    0
  85.     
  86. Start    bsr    OpenThem
  87.     lea.l    NewWindow(pc),a0
  88.     CALLINT    OpenWindow
  89.     move.l    d0,Window
  90.     beq    exit
  91.     sub.l    a1,a1
  92.     CALLEXEC    FindTask
  93.     move.l    d0,a1
  94.     move.b    #-15,d0
  95.     CALLEXEC    SetTaskPri
  96.     jsr    Init
  97.     lea.l    Font(pc),a0
  98.     CALLGRAF    OpenFont
  99.     move.l    Window,a1
  100.     move.l    wd_RPort(a1),a1
  101.     move.l    d0,a0
  102.     CALLGRAF    SetFont
  103.  
  104.  
  105. wait    PRINT    50,20,2,Text1,4
  106.     PRINT    50,30,3,Text2,4
  107.     PRINT    50,40,3,Text3,4
  108.     moveq    #MEMF_PUBLIC,d1 
  109.     CALLEXEC     AvailMem        
  110.            move.l      d0,d2 
  111.     lea    buffer,a0    
  112.     bsr    ASCII
  113.     PRINT    90,20,1,buffer,8
  114.     moveq    #MEMF_FAST,d1 
  115.     CALLEXEC     AvailMem        
  116.            move.l      d0,d2 
  117.     lea    buffer,a0    
  118.     bsr    ASCII
  119.     PRINT    90,30,1,buffer,8
  120.     moveq    #MEMF_CHIP,d1 
  121.     CALLEXEC     AvailMem        
  122.            move.l      d0,d2 
  123.     lea    buffer,a0    
  124.     bsr    ASCII
  125.     PRINT    90,40,1,buffer,8
  126.  
  127.     move.l    Window,a0
  128.     move.l    wd_UserPort(a0),a0
  129.     CALLEXEC    GetMsg
  130.     tst.l    d0
  131.     bne    Message
  132.     bra    wait
  133. Message    move.l    d0,a1
  134.     move.l    im_Class(a1),d4
  135.     CALLEXEC    ReplyMsg
  136.     cmp.l    #CLOSEWINDOW,d4
  137.     bne    Change
  138.     move.l    Window,a0
  139.     CALLINT    CloseWindow
  140.     jsr    Reset
  141. exit    moveq    #0,d0
  142.     rts
  143. Change    eor.b    #$ff,FM_Flag
  144.     bra    wait
  145.  
  146.  
  147.  
  148.  
  149.  
  150. ASCII    clr.b    d3    
  151.     moveq    #7,d0    
  152.     lea    buffer,a0    
  153.     lea    pwrof10,a1    
  154. nex    moveq    #'0',d1    
  155. dec    addq    #1,d1    
  156.     sub.l    (a1),d2    
  157.     bcc.s    dec    
  158.     subq    #1,d1    
  159.     add.l    (a1),d2    
  160.     move.b    d1,(a0)+    
  161.     lea    4(a1),a1    
  162.     dbra    d0,nex
  163.     moveq    #6,d0    
  164.     lea    buffer,a0
  165. rep    cmp.b    #'0',(a0)
  166.     bne    done
  167.     move.b    #' ',(a0)+
  168.     dbra    d0,rep    
  169. done    rts
  170.  
  171. pwrof10    dc.l    10000000
  172.     dc.l    1000000
  173.     dc.l    100000
  174.     dc.l    10000
  175.     dc.l    1000
  176.     dc.l    100
  177.     dc.l    10
  178.     dc.l    1
  179. buffer    ds.b    10
  180.  
  181.  
  182. Text1    dc.b    "RAM "
  183. Text2    dc.b    "Fast"
  184. Text3    dc.b    "Chip"
  185. Init    move.l    4,a6
  186.     move.l    _LVOAvailMem+2(a6),NAvM+2
  187.     move.l    #NewAvailMem,_LVOAvailMem+2(a6)
  188.     move.l    _LVOAllocMem+2(a6),NAcM+2
  189.     move.l    #NewAllocMem,_LVOAllocMem+2(a6)
  190.     rts
  191. Reset    move.l    4,a6
  192.     move.l    NAvM+2,_LVOAvailMem+2(a6)
  193.     move.l    NAcM+2,_LVOAllocMem+2(a6)
  194.     rts
  195.  
  196. FM_Flag    dc.b    0
  197.     even
  198. NewAvailMem    tst.b    FM_Flag
  199.     beq.s    NAvM
  200.     btst    #2,d1
  201.     bne    NAvM2
  202.     or.b    #%11,d1
  203. NAvM    jmp    0
  204. NAvM2    moveq.l    #0,d0
  205.     rts
  206.  
  207. NewAllocMem    tst.b    FM_Flag
  208.     beq.s    NAcM
  209.     btst    #2,d1
  210.     bne    NAvM2
  211.     or.b    #%11,d1
  212. NAcM    jmp    0
  213.  
  214.  
  215.     section    "data",DATA_C
  216.  
  217. Data1    dc.b $ff,$ff,$ff,$ff,$c0,$00,$00,$03,$c0,$79,$f0,$03,$c0,$cd,$98,$03
  218.     dc.b $c0,$cd,$98,$03,$c0,$79,$98,$03,$c0,$00,$00,$03,$c0,$03,$c0,$03
  219.     dc.b $c0,$07,$e0,$03,$c0,$07,$e0,$03,$c0,$03,$c0,$03,$c0,$03,$c0,$03
  220.     dc.b $c0,$07,$e0,$03,$c0,$0b,$d0,$03,$c0,$13,$c8,$03,$c0,$13,$c8,$03
  221.     dc.b $c0,$08,$10,$03,$c0,$07,$e0,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
  222.     dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$01,$c7,$03
  223.     dc.b $c1,$e3,$0c,$03,$c3,$37,$9e,$03,$c3,$33,$0c,$03,$c1,$e3,$0c,$03
  224.     dc.b $c0,$00,$00,$03,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$c0,$00,$00,$03
  225.     dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
  226.     dc.b $c0,$28,$00,$03,$c0,$57,$c0,$03,$c0,$2f,$e0,$03,$c0,$17,$e0,$03
  227.     dc.b $c0,$2b,$c0,$03,$c0,$17,$c0,$03,$c0,$2b,$c0,$03,$c0,$17,$e0,$03
  228.     dc.b $c0,$2f,$f0,$03,$c0,$0f,$f0,$03,$c0,$07,$e0,$03,$c0,$00,$00,$03
  229.     dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
  230.     dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
  231.     dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$ff,$ff,$ff,$ff
  232.     
  233. Data2    dc.b $ff,$ff,$ff,$ff,$c0,$00,$00,$03,$c0,$79,$f0,$03,$c0,$cd,$98,$03
  234.     dc.b $c0,$cd,$98,$03,$c0,$79,$98,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
  235.     dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
  236.     dc.b $c0,$07,$e0,$03,$c0,$08,$10,$03,$c0,$13,$c8,$03,$c0,$13,$c8,$03
  237.     dc.b $c0,$0b,$d0,$03,$c0,$07,$e0,$03,$c0,$03,$c0,$03,$c0,$03,$c0,$03
  238.     dc.b $c0,$07,$e0,$03,$c0,$07,$e0,$03,$c0,$03,$c0,$03,$c0,$01,$c7,$03
  239.     dc.b $c1,$e3,$0c,$03,$c3,$37,$9e,$03,$c3,$33,$0c,$03,$c1,$e3,$0c,$03
  240.     dc.b $c0,$00,$00,$03,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$ff,$c0,$00,$00,$03
  241.     dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
  242.     dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
  243.     dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$07,$e0,$03
  244.     dc.b $c0,$0f,$f0,$03,$c0,$2f,$f0,$03,$c0,$17,$e0,$03,$c0,$2b,$c0,$03
  245.     dc.b $c0,$17,$c0,$03,$c0,$2b,$c0,$03,$c0,$17,$e0,$03,$c0,$2f,$e0,$03
  246.     dc.b $c0,$57,$c0,$03,$c0,$28,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03
  247.     dc.b $c0,$00,$00,$03,$c0,$00,$00,$03,$c0,$00,$00,$03,$ff,$ff,$ff,$ff
  248.  
  249.     
  250.         
  251.  
  252.  
  253.     
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.     
  262.     
  263.     
  264.  
  265.